<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>正则表达式</title>
    <!-- 正则表达式：是一个对象，和string，arrary和其它对象一样；在很多编程语言中都正则表达式这个概念
    但是在JS中，主要指的是RegExp对象。
    创建方法用：RegExp()直接创建。
    var aa = new RegExp(pattern,attributes).参数pattern是一个字符串，这个字符串指定了正则表达式
    模式或另外的一种正则表达式；另外一个参数attributes是一个可选参数，包含属性i,g和m（i区分大小写，
    g指的是全局匹配，m多行匹配）。
    返回值：是一个新RegExp对象，具有指定的模式和标志。
    修饰符：
    i       执行大小写不敏感的匹配
    g       执行全局匹配
    m       执行多行匹配
    表达式：
    [abc]       查找方括号之间的任何字符
    [^abc]      查找任何不在方括号内的字符
    [0-9]       查找任何从0-9的数字
    [a-z]       查找任何从a-z的小写字符
    [A-Z]       类似上面
    [A-z]       查找任何从大写A到小写z的字符
    [adgk]      查找给定集合内的任何字符
    [^adgk]     查找给定集合外的任何字符
    （red|blue|green） 查找任何指定选项
    元字符：
    .       查找单个字符，除去换行和行结束符
    \w      查找单词字符
    \W      查找非单词字符
    \d      查找数字
    \D      查找非数字
    \s      查找空白字符
    \S      查找非空白字符
    \b      匹配单词边界
    \B      匹配非单词边界
    \0      查找NULL字符
    \n      查找换行符
    \f      查找换页符号
    \r      查找回车符号
    \t      查找制表符
    \v      查找垂直制表符
    \xxx    查找以八进制xxx规定的字符
    \xdd    查找以十六进制数据dd规定的字符
    \uxxxx  查找以十六进制xxxx规定的Unicode字符
    量词：
    n+      匹配任何包含至少一个n的字符串
    n*      匹配任何包含0个或多个n的字符串
    n?      匹配任何包含0个或1个n的字符串
    n{X}    匹配包含X个n的序列的字符串
    n{X,Y}  匹配包含X到Y个n的序列的字符串
    n{n,}   匹配包含至少X个n的序列的字符串
    n$      匹配任何结尾为n的字符串
    ^n      匹配任何开头为n的字符串
    ?=n     匹配任何其后紧接指定字符串n的字符串
    ?!n     匹配任何其后没有紧接指定字符串n的字符串
    方法：
    search  检索与正则表达式相匹配的值
    match   找到一个或多个正则表达式的匹配
    replace 替换与正则表达式匹配的子串
    split   把字符串分割为字符串数组
    
    举例常用的正则表达式：
    var re = /a/g;  匹配字符串所有的“a”的实例
    var re = /[bdc]ab/gi;   匹配字符串当中bab、dab、cab的字符串，全局且不区分大小写
    var re = /.ab/gi;       匹配所有以“ab”结尾的字符的组合，全局且不区分大小写
    var re = /\d+/g;        全局匹配所有是数字的字符串
    var re = /^\d+$/;       匹配非负整数，（找到正整数和0）
    var re = /^[0-9]*[1-9][0-9]*$/; 匹配正整数
    var re = /^((-\d+)|(0+))$/;     匹配非正整数
    var re = /^-[0-9]*[1-9][0-9]*$/;    匹配负整数
    var re = /^-?\d+$/;             匹配整数
    var re = /^\d+(\.\d+)?$/;       匹配非负浮点数（正浮点数和0）
    var re = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0
    -9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/; 匹配正浮点数
    var re = /^((-\d+(\.\d+)?)|(0+(\.0+)?))$/; 匹配非正浮点数（负浮点数和0）
    var re = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0
    -9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; 匹配负浮点数
    var re = /^(-?\d+)(\.\d+)?$/;       匹配所有浮点数 -->
    <script>
    var str = "asfd87asfd90 99 df998 lk9";
    var re = /\d+/g;
    document.write(str.match(re));
    </script>
    <!-- /规则（元字符，量词，表达式）/修饰符; -->
</head>
<body>
    
</body>
</html>